Skip to content

Add interactive setup wizard and refactor output handling#69

Merged
valITino merged 1 commit intomainfrom
claude/optimize-setup-ux-bq2zv
Mar 13, 2026
Merged

Add interactive setup wizard and refactor output handling#69
valITino merged 1 commit intomainfrom
claude/optimize-setup-ux-bq2zv

Conversation

@valITino
Copy link
Owner

Summary

This PR introduces a comprehensive interactive setup wizard (setup.sh) that streamlines the first-time installation experience, alongside a refactoring of output file handling to use host-mounted directories instead of Docker volumes.

Key Changes

New Setup Wizard (setup.sh)

  • Interactive installation flow: Guides users through prerequisites checking, environment configuration, optional component selection, and service startup
  • Prerequisite validation: Checks for Docker, Docker Compose, Git, and available disk space with helpful error messages
  • Non-interactive mode: Supports command-line flags (--api-key, --minimal, --with-neo4j, etc.) for automation
  • Health monitoring: Waits for core services to become healthy before declaring setup complete
  • User-friendly output: Color-coded messages with progress indicators and actionable next steps

Output File Handling Refactoring

  • Host-mounted directories: Replaced Docker volume results with bind mounts:
    • ./output/reports//root/reports/ (pentest reports)
    • ./output/screenshots//tmp/screenshots/ (PoC evidence)
    • ./output/sessions//root/results/ (aggregated session JSONs)
  • Direct filesystem access: Users can now access output files directly from their host without docker cp
  • Automatic directory creation: setup.sh creates the output directory structure

Documentation Updates

  • README.md: Added "Output Files" section, expanded installation instructions with quick-start wizard, updated component table
  • DOCKER.md: Clarified Ollama as optional (v2.1+), updated architecture diagrams, simplified usage examples
  • .env.example: Reorganized with clear REQUIRED vs OPTIONAL sections, improved comments

Configuration & Build Changes

  • docker-compose.yml: Replaced results volume with bind mount for screenshot-mcp, removed unused volume definition
  • Makefile: Added setup target as primary installation method
  • .gitignore: Added output/ directory and plan.md to ignored paths
  • inject_verification.py: Minor code formatting improvement (extracted targets variable)

Container Entrypoint Updates

  • claude-code-entrypoint.sh: Updated help text to reference output files mount point

Notable Implementation Details

  • The setup wizard uses semantic versioning comparison for Docker/Compose version checks
  • Profiles are conditionally applied based on user selections (neo4j, gateway, ollama)
  • Health checks specifically wait for kali-mcp and screenshot-mcp core services
  • API key input uses read -rsp for secure password-style input
  • The wizard gracefully handles existing .env files with user confirmation before overwriting

https://claude.ai/code/session_01JZbXEtmxC7P6HLbTDF2i4j

- Add setup.sh interactive wizard (prereq checks, .env generation, docker
  pull/up, health wait) with CLI flags for non-interactive use
- Replace Docker named volume with host bind mounts (./output/) so reports,
  screenshots, and session JSONs are accessible on the host filesystem
- Restructure .env.example with clear REQUIRED vs OPTIONAL sections
- Add `make setup` target to Makefile
- Fix inject_verification.py syntax error (multiline f-string incompatible
  with Python < 3.12)
- Update docker/claude-code-entrypoint.sh to show output directory mappings
- Update README.md: add setup.sh quick-start, Output Files section, updated
  project structure
- Update DOCKER.md: fix Ollama "required" → "optional" (since v2.1), correct
  core stack count (9 → 4), fix Compose Services profile column, add output
  bind mount documentation

https://claude.ai/code/session_01JZbXEtmxC7P6HLbTDF2i4j
@valITino valITino marked this pull request as ready for review March 13, 2026 09:54
@valITino valITino merged commit 3c3c8b8 into main Mar 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants